package io.xxx.xbutler.sdk.request;

import com.alibaba.fastjson2.annotation.JSONField;
import io.xxx.xbutler.sdk.TanJingRequest;
import io.xxx.xbutler.sdk.response.PullFriendInChatRoomResponse;
import lombok.Data;

import java.util.List;
import java.util.Map;

/**
 * 【异步调用】机器邀请好友入群接口（兼容PC）<br/>
 * 说明：新增vcFriendSerialNos参数，可以支持拉多个好友入群。
 * 新增参数后，新接入的商户可以只传vcFriendSerialNos参数，拉多个好友入群则传多个好友编号，拉多个好友入群传单个好友编号；
 * 老的商户可以继续使用拉单个好友的传参形式，只传vcFriendSerialNo参数，也可以调整为通过vcFriendSerialNos参数拉单个或多个好友入群已支持企业外部群&普通群；
 */
@Data
public class PullFriendInChatRoomRequest implements TanJingRequest<PullFriendInChatRoomResponse> {

    @JSONField(name = "vcRobotSerialNo")
    private String robotSerialNo;

    @JSONField(name = "vcChatRoomSerialNo")
    private String chatRoomSerialNo;

    @JSONField(name = "vcFriendSerialNo")
    private String friendSerialNo;

    @JSONField(name = "vcFriendSerialNos")
    private List<String> friendSerialNos;

    @Override
    public String path() {
        return "/scrm/ChatRoom/PullFriendInChatRoom";
    }

    @Override
    public Map<String, Object> params() {
        return Map.of(
                "vcRobotSerialNo", robotSerialNo,
                "vcChatRoomSerialNo", chatRoomSerialNo,
                "vcFriendSerialNo", friendSerialNo,
                "vcFriendSerialNos", friendSerialNos
        );
    }

    @Override
    public Class<PullFriendInChatRoomResponse> responseType() {
        return PullFriendInChatRoomResponse.class;
    }
}
